// http://ruijie.zhiye.com/campus/?PageIndex=1
// 锐捷网络股份有限公司

var spider = require('../../dao/spider');
var cheerio = require('cheerio');
var url_node = require('url');
var Iconv = require('iconv-lite');
var pinyin = require('node-pinyin');
var insertDB = require('../../dao/insert.db');
var utils = require('../../dao/utils');
var request = require('request');
var fs = require('fs');

const company = '锐捷网络股份有限公司';
var index = 'http://ruijie.zhiye.com/campus/?PageIndex=1';

var url = 'http://ruijie.zhiye.com/campus/?PageIndex=*PageReplace*';

var page = {
    curPage: 1,
    totalPage: 1
};


// spider.pageNext(url, page, callback);
module.exports = function (successCall) {

    spider.successCall = successCall;
    spider.pageNext(url, page, callback);
};

function callback(err, body, _url) {
    if (err) {
        console.log(err);
        return;
    }

    var res;
    try {
        res = body.toString('utf-8');


        var $ = cheerio.load(res);

        if ($('.pager span').eq(3).find("a").attr("href")) {
            page.totalPage = $('.pager span').eq(3).find("a").attr("href").split('PageIndex=')[1];
        }

        dataInit($, _url);

        if (page.totalPage == page.curPage) {
            spider.successCall(null, 'success');
            spider.successCall = function () {};
        }
    } catch (e) {
        console.log(e);
    }
}


// page页数据处理
function dataInit($, url) {

    var urlObj = url_node.parse(url);
    var protocol = urlObj.protocol;
    var hostname = urlObj.hostname;

    var host = protocol + "//" + hostname;

    var liArry = $('.listtable tbody tr');

    if (liArry.length == 0) {
        console.log('no lis');
        return false;
    } else {
        for (var i = 0; i < liArry.length; i++) {
            var item = liArry.eq(i);
            var location = item.find('td').eq(2).attr('title');
            var url = host + item.find('td').eq(0).find("a").attr('href');

            console.log(url);
            //detail  
            getDetail(url, location);
        }
    }


}

function getDetail(d_url, location) {
    request({
        url: d_url,
        encoding: null
    }, function (err, res, body) {
        var res;
        try {
            res = body.toString('utf-8');

            // console.log(res);

            var $ = cheerio.load(res);

            detailHtml($, d_url, location);
        } catch (e) {


        }
    });
}


function detailHtml($, url, location) {
    var urlObj = url_node.parse(url);
    var protocol = urlObj.protocol;
    var hostname = urlObj.hostname;

    var host = protocol + "//" + hostname;

    // var item = $('.zwxq');

    // if (item.length == 0) {
    //     return false;
    // }

    var salary = $('.xiangqingcontain .xiangqinglist').eq(0).find('.nvalue').eq(2).text();

    var temp = [];
    // if(salary == ''){

    // }else{
    //     temp.push(utils.trim(salary));
    // }


    var edu = '';
    // 职位名称
    var name = utils.trim($(".xiangqingtitle span").text().replace('(未申请)', ''));

    var date = $('.xiangqingcontain .xiangqinglist').eq(1).find('.nvalue').eq(0).text();



    var description = utils.trim($(".xiangqingtext").text());

    var count = $('.xiangqingcontain .xiangqinglist').eq(0).find('.nvalue').eq(3).text();
    var data = {
        "url": url, // jd详情页的地址
        'edu': edu, // 最低学历
        'exp': [], // 所需工作经验，比如[3,5]表示3到5年,[3]表示3年，[]表示无经验要求
        'name': name, // 职位名称*
        'date': utils.trim(date), // 职位发布日期，字符串形式即可，后期统一转换
        'lang': '', // 对语言的要求
        'place': '', // 办公具体地址
        'major': '', // 专业要求
        'count': utils.trim(count), // 招聘数量
        'salary': temp, // 薪资待遇，[5000,8000]表示月薪5到8千，[4000]表示4千，[]表示没有写明
        'toSchool': true, // 是否是面向校园招聘，本次官网抓取一律都是校园招聘，所以此处都是True
        'welfare': [], // 福利待遇，比如五险一金、十三薪之类的，保存成数组
        'funType': '', // 职能类型，比如证券经纪人是证券/期货/外汇经纪人
        'company': company, // 企业名称
        'location': location, // 所在城市
        'industry': '', // 企业所在行业
        'keywords': [], // 此岗位的搜索关键字 
        'platform': 'offical', // 针对官网抓取时此处一律保存为offical
        'searchKeyword': '', // 搜索的关键字，由于是官网抓取所以此处一律为空字符串
        'description': description, // 职位的详细描述，包括职责、要求之类的
        'subIndustry': '', // 一律为空字符串
        'stime': new Date() // 抓取时间
    };

    insertDB(data);
    // console.log(chapter);

}